home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / c / awin / makefile < prev    next >
Makefile  |  1999-05-17  |  4KB  |  144 lines

  1. #
  2. # awindemo makefile for egcs (gcc)
  3. # an example on how to use awin in your own projects
  4. #
  5. # IMPORTANT! Uses SAS/C PPC lib: files to link
  6. #
  7.  
  8. # -O3 makes 0x0 egcs barf on spilled regs. that's why I need some
  9. # special arrangement with some functions (gccstubs.o).
  10.  
  11. ### 68k assembler defines ###
  12. #ASMC2P = devpac:genam with genam.opts
  13. #ASM = devpac:genam with genam.opts
  14. ASMC2P = phxass symdebug linedebug noexe machine 68040 opt 0
  15. ASM = phxass symdebug linedebug noexe machine 68040 opt 2
  16.  
  17.  
  18. ### 68k defines ###
  19. #CFLAGS_68K = -noixemul -m68020-60 -msoft-float \
  20. #             -Wall \
  21. #             -O3 -fomit-frame-pointer -funroll-loops -fthread-jumps \
  22. #             -fcse-follow-jumps -fcse-skip-blocks -frerun-loop-opt
  23. CFLAGS_68K = -noixemul -m68020-60 -msoft-float -Wall \
  24.              -O3 -fomit-frame-pointer -funroll-loops
  25.  
  26. CC_68K = gcc $(CFLAGS_68K) -c
  27. LINK_68K = gcc $(CFLAGS_68K)
  28.  
  29. AWINOBJS_68K = ddazure2.o gccstubs.o cpu5azure2.o awin68k.o \
  30.                /gg/lib/libnix/swapstack.o
  31. AWINHDRS_68K = ddazure2.h gccstubs.h cpu5azure2.h awin.h
  32. AWINLIBS_68K = -lm
  33.  
  34.  
  35. ### ppc defines ###
  36. CFLAGS_PPC = -Wall \
  37.              -O3 -fforce-addr -fomit-frame-pointer -fstrength-reduce \
  38.              -fthread-jumps -fcse-follow-jumps -fcse-skip-blocks \
  39.              -fexpensive-optimizations -fschedule-insns \
  40.              -funroll-loops
  41.  
  42. CC_PPC = ppc-amigaos-gcc -r -noixemul $(CFLAGS_PPC) \
  43.          -I/gg/ppc-amigaos/include/ -I/gg/ppc-amigaos/os-include/ \
  44.          -I/gg/include/ -I/gg/os-include/ -DAW_PPC -c
  45.  
  46. LINK_PPC = ppc-amigaos-ld -r -noixemul
  47. #LINK_PPC = vlink -b elf32ppcbe -r
  48.  
  49. AWINOBJS_PPC = awinppc.o
  50. AWINHDRS_PPC = awin.h
  51. #AWINLIBS_PPC = -lmoto -lm
  52. AWINLIBS_PPC = gg:ppc-amigaos/lib/libmoto.a gg:ppc-amigaos/lib/libm.a \
  53.                lib:scppc.a lib:end.o
  54.  
  55.  
  56. all: 68k ppc
  57.  
  58. clean:
  59.     rm -rf awindemo68k awindemoppc *.info *.o *.tmp *.lnk
  60.  
  61.  
  62. # this is a custom destination to build aminet release
  63. aminet:
  64.     @echo "# making 68k and ppc"
  65.     $(MAKE) 68k
  66.     $(MAKE) ppc
  67.     @echo "# stripping executables"
  68.     $(MAKE) strip68k
  69.     $(MAKE) stripppc
  70.     cp awindemo.inf awindemo68k.info
  71.     cp awindemo.inf awindemoppc.info
  72.     @echo "# deleting old /work/tosend/awin dir"
  73.     rm -rf /work/tosend/awin/*
  74.     rm -f /work/tosend/awin.lha
  75.     @echo "# copying files..."
  76.     copy "~(#?.(o|tmp|lnk))" to work:tosend/awin/ all clone quiet
  77.     copy awin.readme to work:tosend/ clone quiet
  78.     @echo "# building lha..."
  79.     lha a -r work:tosend/awin.lha work:tosend/ awin awin.info awin.readme
  80.     @echo "# awin.lha and awin.readme ready to ship! ;)"
  81.  
  82. 68k:  awindemo68k
  83.  
  84. ppc: awindemoppc
  85.     chmod u+x awindemoppc
  86.     ppc-amigaos-objdump -t awindemoppc | grep *UND*
  87.  
  88. strip68k:
  89.     strip awindemo68k
  90.  
  91. stripppc:
  92.     ppc-amigaos-strip --strip-debug awindemoppc
  93.  
  94. # modify stuff after this line
  95.  
  96. awindemo68k.o: awindemo.c $(AWINHDRS_68K)
  97.     $(CC_68K) awindemo.c -o $@
  98.  
  99. awindemoppc.o: awindemo.c $(AWINHDRS_PPC)
  100.     $(CC_PPC) awindemo.c -o $@
  101.  
  102. awindemo68k: $(AWINOBJS_68K) awindemo68k.o
  103.     $(LINK_68K) $(AWINOBJS_68K) awindemo68k.o $(AWINLIBS_68K) -o $@
  104.  
  105. awindemoppc: $(AWINOBJS_PPC) awindemoppc.o
  106.     $(LINK_PPC) lib:c_ppc.o $(AWINOBJS_PPC) awindemoppc.o $(AWINLIBS_PPC) -o $@
  107.  
  108. # here are things you don't modify
  109.  
  110. awsetlnnameinner:
  111.     $(ASM) from $@.ASM to $@.o
  112.     sh odump $@
  113.     rm -f $@.o
  114.  
  115. awsafewaitinner:
  116.     $(ASM) from $@.ASM to $@.o
  117.     sh odump $@
  118.     rm -f $@.o
  119.  
  120. awfreepensinner:
  121.     $(ASM) from $@.ASM to $@.o
  122.     sh odump $@
  123.     rm -f $@.o
  124.  
  125. awremapinner:
  126.     $(ASM) from $@.ASM to $@.o
  127.     sh odump $@
  128.     rm -f $@.o
  129.  
  130. ddazure2.o:  ddazure2.ASM
  131.     $(ASM) from ddazure2.ASM to $@
  132.  
  133. gccstubs.o: gccstubs.ASM
  134.     $(ASM) from gccstubs.ASM to $@
  135.  
  136. cpu5azure2.o: cpu5azure2.ASM
  137.     $(ASMC2P) from cpu5azure2.ASM to $@
  138.  
  139. awin68k.o: awin.c $(AWINHDRS_68K)
  140.     $(CC_68K) awin.c -o $@
  141.  
  142. awinppc.o: awin.c $(AWINHDRS_PPC)
  143.     $(CC_PPC) awin.c -o $@
  144.